/**
 * @param {string} s
 * @return {number}
 */
 var lengthOfLongestSubstring = function(s) {
    var mapper=new Map();
    var left=0;
    var right=0;
    var ret=0;
    while(right<s.length){
        if(mapper.has(s[right])){
            while(left<right&&s[left]!=s[right]){
                mapper.delete(s[left])
                left++;
            }
            left++;
        }
        else{
            mapper.set(s[right],1);
            if(mapper.size>ret){
                ret=mapper.size;
            }
        }
        right++;
    }
    return ret;
};

// 执行用时：
// 108 ms
// , 在所有 JavaScript 提交中击败了
// 81.43%
// 的用户
// 内存消耗：
// 42.2 MB
// , 在所有 JavaScript 提交中击败了
// 64.48%
// 的用户